With the development of information technology, the amount of data that needs to be stored and processed increases dramatically. Therefore, besides improving the storage density and storage capacity of a single storage device, there is also proposed a storage system comprising a plurality of storage devices used to store data. For example, a storage array comprising a plurality of independent non-volatile storage (e.g., disk, solid state drive, etc.) may be used as the storage system, and an array set comprising a plurality of storage arrays may also act as the storage system. Due to the rapid increase in data storage needs, storage systems are loaded with more and more storage devices. For a storage system comprising a large number of storage devices, how to improve its operating performance attracts a lot of attention. Generally, in the storage system mentioned above, data is distributed on the respective storage devices. To improve the performance, some storage systems determine “hot” storage units or data blocks on the storage devices and distribute these hot data blocks evenly on different storage devices so as to avoid performance bottlenecks caused by some storage devices. Other storage systems migrate hot data blocks accessed more frequently to high-performance storage medium layers and migrate non-hot data blocks accessed less frequently to a relatively low-performance storage medium layers so as to better utilize storage performance of different media and implement high-performance storage. The evaluation on a hot data block may be based on response time of a storage unit corresponding to the data block or inputs/outputs per second (IOPS).
However, compared with the operating performance, energy consumption of the storage systems gets less consideration in previous disclosures. The energy consumption is becoming a prominent problem for storage systems loaded with a large number of storage devices. According to an existing solution, a timer is set for a storage device, which timer starts timing when the storage device enters an idle state after the completion of data access. When the timer reaches certain timing value, the storage device will be set to a low power state. In other words, when the storage device has no data access within a certain time period, it will be set to the low power state. However, for a storage system comprising a plurality of storage devices, such solution may cause respective storage devices to frequently switch between different power states, thus affecting performance of the storage devices.